#pragma once

#include <iostream>
#include <vector>
#include "Breathe.h"
#include "Headband.h"

class Device {
public:
    Device() {
        std::cout << "Device constructor" << std::endl;
        m_breathe.loadHandbandData(m_headband);
        m_breathe.loadParent(this);
    }
    virtual ~Device() {
        std::cout << "Device destructor" << std::endl;
    }

    void printHeadbandData() {
        std::cout << "Headband data: " << std::endl;
        for (auto data : m_headband.getData()) {
            std::cout << data << " ";
        }
        std::cout << std::endl;
    }

    void printBreatheData() {
        std::cout << "Breathe data: " << std::endl;
        for (auto data : m_breathe.getData()) {
            std::cout << data << " ";
        }
        std::cout << std::endl;
    }
    
    void printHeadbandData2() {
        m_breathe.printHeadbandData();
    }

    void printHeadbandData3() {
        m_breathe.printHeadbandData2();
    }

    Headband getHeadband() {
        return m_headband;
    }

private:

    Breathe m_breathe;
    Headband m_headband;
};

